from ChatBot import ChatBot
import pyttsx3

modelName='qwen2.5:7b'   #效果最好
#modelName='llama3.1:latest' #效果其次 调用Mp3_Download函数下载《爱在心底口难开》
#modelName='deepseek-r1:7b' ##不支持functioncall
#modelName='tripolskypetr/deepseek-v3:latest'  #效果最差
#modelName="MFDoom/deepseek-r1-tool-calling:8b" #效果最差 

# 初始化语音引擎
ttsOpen=False
# 初始化ChatBot
bot =  ChatBot(modelName) 
print("")
print("")
print("注意：ChatBot不一定每次都能命中FunctionCall函数。")
print("已加载FunctionCall：", list(bot.pluginManager.tools.keys())) 

if ttsOpen:
 # 初始化语音引擎
    engine = pyttsx3.init() 
# 连续对话演示
while True:
    msgInput = input("\n用户：")
    if msgInput.lower() in ['exit', 'quit', 'bye', '/bye']:
        print("下次见。")
        break  
    #bot.chatBotStream(msgInput)
    msgInput =bot.chatBot(msgInput)
    
    if ttsOpen:
        engine.say(msgInput) 
        engine.runAndWait()  
    print(f"助手:{msgInput}")

 
'''
bot.chatBot("查询在线歌曲《如愿-王菲》")
bot.chatBot("下载《如愿-王菲》")
bot.chatBot("播放本地歌曲《如愿-王菲》")
bot.chatBot("播放本地歌曲爱一个人好难")
exit()

print("助手：", bot.chatBot("播放本地歌曲《爱一个人好难》"))
print("助手：", bot.chatBot("播放本地歌曲如愿-王菲"))
exit()


# 自动加载所有插件
ls=list(bot.pluginManager.tools.keys())
num=1
for item in ls:
    print(f"{num}=>{item}:",bot.pluginManager.tools[item]["description"]+"\n")
    num+=1
print("已加载功能：", list(bot.plugin_manager.tools.keys()))


# 输出：['get_weather', 'compare_cities']
print("助手：", bot.chat_round("西安温度如何？"))

# 第1轮对话（需要模型记住上下文）
print("\n用户：西安温度如何？")
print("助手：", bot.chat_round("西安温度如何？"))

# 第2轮对话（需要模型记住上下文）
print("\n用户：那长沙呢？")
print("助手：", bot.chat_round("那长沙呢？"))

# 进行对话
print("\n用户：比较长沙和西安的温度？") 
print("助手：", bot.chat_round("比较长沙和西安的温度"))

'''